﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Grupo2.Dominio;
using Grupo2.Persistencia;

// CROJASB NO TOCAR....!!!
namespace Grupo2.Negocio
{
    public class InscripcionPersonalService
    {
        public Postulante RegistrarPostulante(Int32 id_postulante
                                           , String nombres
                                           , String apellidos
                                           , String sexo
                                           , String profesion
                                           , String especialidad
                                           , String ciudad_domicilio
                                           , String direccion
                                           , String email
                                           , String password
                                           , String dni
                                           , DateTime fecha_nacimiento
                                           , String telefono                                           
                                           , String referencia_idiomas)
        {
            if (null == nombres || String.Empty.Equals(nombres))
                throw new Exception("El dato NOMBRES es obligatorio");

            if (null == apellidos || String.Empty.Equals(apellidos))
                throw new Exception("El dato APELLIDOS es obligatorio");

            if (null == sexo || String.Empty.Equals(sexo))
                throw new Exception("El dato SEXO es obligatorio");

            if (null == email || String.Empty.Equals(email))
                throw new Exception("El dato EMAIL es obligatorio");

            if (null == password || String.Empty.Equals(password))
                throw new Exception("El dato PASSWORD es obligatorio");

            if (null == dni || String.Empty.Equals(dni))
                throw new Exception("El dato DNI es obligatorio");

            if (null == fecha_nacimiento)
                throw new Exception("El dato FECHA DE NACIMIENTO es obligatorio");


            PostulanteDAO postulanteDAO = new PostulanteDAO();
            Postulante postulante = new Postulante();

            postulante.Id_Postulante = 1;
            postulante.Nombres = nombres;
            postulante.Apellidos = apellidos;
            postulante.Sexo = sexo;
            postulante.Profesion = profesion;
            postulante.Especialidad = especialidad;
            postulante.Ciudad_Domicilio = ciudad_domicilio;
            postulante.Direccion = direccion;
            postulante.Email = email;
            postulante.Password = password;
            postulante.Dni = dni;
            postulante.Fecha_Nacimiento = fecha_nacimiento;
            postulante.Telefono = telefono;
            postulante.Referencia_Idiomas = referencia_idiomas;

            Postulante postulanteCreado = postulanteDAO.CrearPostulante(postulante);
            return postulanteCreado;
        }


        public Postulante ModificarPostulante(Int32 id_postulante
                                           , String nombres
                                           , String apellidos
                                           , String sexo
                                           , String profesion
                                           , String especialidad
                                           , String ciudad_domicilio
                                           , String direccion
                                           , String email
                                           , String password
                                           , String dni
                                           , DateTime fecha_nacimiento
                                           , String telefono                                           
                                           , String referencia_idiomas)
        {
            PostulanteDAO postulanteDAO = new PostulanteDAO();
            Postulante postulanteExistente = postulanteDAO.ObtenerPostulante(id_postulante);
            if (null == postulanteExistente)
                throw new Exception("El Postulante NO EXISTE...");
            if (null == nombres || String.Empty.Equals(nombres))
                throw new Exception("El dato NOMBRES es obligatorio");
            if (null == apellidos || String.Empty.Equals(apellidos))
                throw new Exception("El dato APELLIDOS es obligatorio");
            if (null == sexo || String.Empty.Equals(sexo))
                throw new Exception("El dato SEXO es obligatorio");
            if (null == email || String.Empty.Equals(email))
                throw new Exception("El dato EMAIL es obligatorio");
            if (null == password || String.Empty.Equals(password))
                throw new Exception("El dato PASSWORD es obligatorio");
            if (null == dni || String.Empty.Equals(dni))
                throw new Exception("El dato DNI es obligatorio");
            if (null == fecha_nacimiento)
                throw new Exception("El dato FECHA DE NACIMIENTO es obligatorio");


            /*          OfertanteDAO ofertanteDAO = new OfertanteDAO();
                      Ofertante ofertanteExistente = ofertanteDAO.ObtenerOfertante(id_ofertante);
                      if (null == ofertanteExistente)
                          throw new Exception("El Ofertante NO EXISTE...");*/

            Postulante postulante = new Postulante();
            postulante.Id_Postulante = 1;
            postulante.Nombres = nombres;
            postulante.Apellidos = apellidos;
            postulante.Sexo = sexo;
            postulante.Profesion = profesion;
            postulante.Especialidad = especialidad;
            postulante.Ciudad_Domicilio = ciudad_domicilio;
            postulante.Direccion = direccion;
            postulante.Email = email;
            postulante.Password = password;
            postulante.Dni = dni;
            postulante.Fecha_Nacimiento = fecha_nacimiento;
            postulante.Telefono = telefono;            
            postulante.Referencia_Idiomas = referencia_idiomas;

            Postulante postulanteModificado = postulanteDAO.ModificarPostulante(postulante);
            return postulanteModificado;
        }

        public Postulante EliminarPostulante(Int32 id_postulante)
        {
            PostulanteDAO postulanteDAO = new PostulanteDAO();
            Postulante postulanteExistente = postulanteDAO.ObtenerPostulante(id_postulante);
            if (null == postulanteExistente)
                throw new Exception("El postulante NO EXISTE...");

            Postulante postulante = new Postulante();
            postulante = postulanteExistente;

            postulanteDAO.EliminarPostulante(postulante.Id_Postulante);
            return postulante;
        }


        public Postulante ListarAvisos(Postulante postulante)
        {
            return null;
        }
    }
}